﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace VatGia
{
    public partial class FormQLTinNhan : Form
    {
        public FormQLTinNhan()
        {
            InitializeComponent();
        }

        DataService dservice = new DataService();
        DataTable dt = new DataTable();
        public int maTin_select;

        private void FormQLTinNhan_Load(object sender, EventArgs e)
        {
            loadTin();
        }

        private void loadTin()
        {
            // do du lieu vao combobox loai tin
            dservice.Connect();
            cbox_LoaiTinNhan.DisplayMember = "TenLoaiTin";
            cbox_LoaiTinNhan.ValueMember = "MaLoaiTin";
            cbox_LoaiTinNhan.DataSource = dservice.ExcuteProcedureGetTable("sp_getLoaiTin", null, null);
          

            // do du lieu vao data gird view
           
            SqlParameter[] parameters = new SqlParameter[1];
           
            parameters[0] = new SqlParameter("@username", Public_variable.Username);
            dt = dservice.ExcuteProcedureGetTable("sp_getTin_User", parameters, null);
            dGV_DSTinNhan.DataSource = dt;
            dGV_DSTinNhan.Columns[0].Width = 100;
            dGV_DSTinNhan.Columns[1].Width = 250;
            dGV_DSTinNhan.Columns[2].Width = 250;
            dGV_DSTinNhan.Columns[3].Width = 235;

            // dGV_DSTinNhan.DataBindings(); 

              dservice.Disconnect();
        }

        private void dGV_DSTinNhan_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            /*int iRow = 0;
            iRow = e.RowIndex;
            if (iRow >= 0)
            {
                txtNoiDung.Text = dGV_DSTinNhan.Rows[iRow].Cells["NoiDung"].Value.ToString();
                //cbox_LoaiTinNhan.SelectedIndex = cbox_LoaiTinNhan.Items.IndexOf(dGV_DSTinNhan.Rows[iRow].Cells["TenLoaiTin"].Value.ToString());
              cbox_LoaiTinNhan.SelectedIndex =   cbox_LoaiTinNhan.FindStringExact(dGV_DSTinNhan.Rows[iRow].Cells["TenLoaiTin"].Value.ToString());
            }*/
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = dGV_DSTinNhan.SelectedRows.Count - 1; i >= 0; i--)
                {
                    if (dGV_DSTinNhan.SelectedRows[i].Index <= dGV_DSTinNhan.Rows.Count - 1)
                    {
                        DialogResult = MessageBox.Show("Bạn có chắc là muốn xóa tin nhắn này không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                        if (DialogResult == DialogResult.OK)
                        {                            
                            int id = Int32.Parse(dGV_DSTinNhan.SelectedRows[i].Cells[0].Value.ToString());
                            dservice.Connect();
                            SqlParameter [] parameters = new SqlParameter[1];
                            parameters[0] = new SqlParameter("@matin", id);
                            dservice.ExcuteProcedure("sp_deleteTin", parameters, null);
                            
                            MessageBox.Show("Hủy tin nhắn thành công!");
                            dservice.Disconnect();
                            
                        }
                    }
                }
                loadTin();
                
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void btnPostTN_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtNoiDung.Text != "")
                {                   
                    dservice.Connect();

                    SqlParameter[] parameters = new SqlParameter[3];
                    parameters[0] = new SqlParameter("@noidung", txtNoiDung.Text);
                    parameters[1] = new SqlParameter("@loaitin",cbox_LoaiTinNhan.SelectedValue);
                    parameters[2] = new SqlParameter("@username", Public_variable.Username);

                    dservice.ExcuteProcedure("sp_insertTin", parameters, null);
                    MessageBox.Show("Đăng tin thành công!!!");
                    
                    txtNoiDung.Text = "";
                    dservice.Disconnect();
                    loadTin();
                }
                else
                    MessageBox.Show("Thông tin chưa đầy đủ - Vui lòng kiểm tra!!!");
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        private void dGV_DSTinNhan_SelectionChanged(object sender, EventArgs e)
        {
            for (int i = dGV_DSTinNhan.SelectedRows.Count - 1; i >= 0; i--)
            {
                if (dGV_DSTinNhan.SelectedRows[i].Index <= dGV_DSTinNhan.Rows.Count - 1)
                {
                    maTin_select = Int32.Parse(dGV_DSTinNhan.SelectedRows[i].Cells[0].Value.ToString());
                    txtNoiDung.Text = dGV_DSTinNhan.SelectedRows[i].Cells[1].Value.ToString();
                    cbox_LoaiTinNhan.Text = dGV_DSTinNhan.SelectedRows[i].Cells[2].Value.ToString();

                }
            }
        }

        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            try
            {
                if (dGV_DSTinNhan.SelectedRows.Count > 0)
                {
                    if (txtNoiDung.Text != "")
                    {
                        dservice.Connect();
                        SqlParameter[] parameters = new SqlParameter[3];
                        parameters[0] = new SqlParameter("@matinUp", maTin_select);
                        parameters[1] = new SqlParameter("@loaitin", cbox_LoaiTinNhan.SelectedValue);
                        parameters[2] = new SqlParameter("@noidung", txtNoiDung.Text);

                        dservice.ExcuteProcedure("sp_updateTin", parameters, null);
                        MessageBox.Show("Tin của bạn vừa được cập nhật thành công!!!");
                        dservice.Disconnect();
                        loadTin();
                        
                    }
                    else
                    {
                        MessageBox.Show("Thông tin chưa đầy đủ - Vui lòng kiểm tra!!!");
                    }
                }
                
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

